#include "cputest.h"

TEST(test0, \
	"l_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test01, \
	"l_%=: \n\t" \
	"nop \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test02, \
	"l_%=: \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test03, \
	"l_%=: \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test1, \
	"l_%=: \n\t" \
	"movq %%mm0, %%mm1 \n\t" \
	"movq %%mm1, %%mm2 \n\t" \
	"movq %%mm2, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test2, \
	"l_%=: \n\t" \
	"movq %%mm0, %%mm1 \n\t" \
	"movq %%mm0, %%mm2 \n\t" \
	"movq %%mm0, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test3, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test4, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test5, \
	"l_%=: \n\t" \
	"movl %%eax, %%ebx \n\t" \
	"movl %%eax, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test6, \
	"l_%=: \n\t" \
	"movl %%eax, %%ebx \n\t" \
	"movl %%ebx, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test7, \
	"l_%=: \n\t" \
	"addl %%eax, %%ebx \n\t" \
	"addl %%eax, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test8, \
	"l_%=: \n\t" \
	"addl %%eax, %%ebx \n\t" \
	"addl %%ebx, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test9, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"movl %%eax, %%ebx \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"movl %%eax, %%edx \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test10, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"pinsrw $0, %%eax, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"pinsrw $0, %%eax, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"pinsrw $0, %%eax, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test11, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"pinsrw $0, %%eax, %%mm4 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"pinsrw $0, %%eax, %%mm4 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"pinsrw $0, %%eax, %%mm4 \n\t" \
	"loop l_%= \n\t" \
     )
test0: 2.025004
test01: 3.037624
test02: 4.050206
test03: 5.062920
test1: 5.064210
test2: 5.066772
test3: 6.079357
test4: 6.079353
test5: 4.050166
test6: 4.050152
test7: 4.050019
test8: 4.050096
test9: 7.093350
test10: 15.247497
test11: 18.241049
